package utils;

import java.util.List;
import java.util.Map;

import data.Carrier;
import data.CarrierType;

public class CarrierUtils {

	public void updateCarrierTypeIfNecessary(Carrier optimalCarrier,
			List<CarrierType> carrierTypesForFile) {
		String largestCarrierTypeName = "";
		float largestCarrierTypeCapacity = 0f;
		for (Map.Entry<String, Float> entry : optimalCarrier
				.getCarriersWithCapacity().entrySet()) {
			// System.out.println(entry.getKey() + " " + entry.getValue());
			if (entry.getValue() > largestCarrierTypeCapacity) {
				largestCarrierTypeCapacity = entry.getValue();
				largestCarrierTypeName = entry.getKey();
			}
		}
		if (!optimalCarrier.getType().getName().equals(largestCarrierTypeName)) {
			for (CarrierType ct : carrierTypesForFile) {
				if (ct.getName().equals(largestCarrierTypeName)) {
					optimalCarrier.setType(ct);
				}
			}
		}
	}

	public CarrierType getPotentialCarrierType(List<CarrierType> types,
			String name) {
		for (CarrierType type : types) {
			if (type.getName().equals(name)) {
				return type;
			}
		}
		return null;
	}

}
